//======================
//模型：User模型, user表
//======================
let {
    DataTypes,
    Model
} = require('sequelize');

class Order extends Model {}

function date_return() {
    let obj = {}
    for (let i = 1; i < 32; i++) {
        obj['date_' + i] = {
            type: DataTypes.STRING(10),
            allowNull: true,
            comment: `当月${i}日用电`
        }
    }
    return obj;
}
//定义模型结构, 数据表结构
Order.init({
    id: {
        //数据类型：INTEGER整型, UNSIGNED无符号
        type: DataTypes.INTEGER.UNSIGNED,
        //自动递增
        autoIncrement: true,
        //主键
        primaryKey: true,

        //不允许为null
        allowNull: false,

        //注释
        comment: '表id'
    },

    userId: {
        type: DataTypes.INTEGER.UNSIGNED,
        allowNull: false,
        comment: '对应用户id'
    },

    month: {
        type: DataTypes.INTEGER.UNSIGNED,
        allowNull: false,
        comment: '用电月份'
    },

    // date_1: {
    //     type: DataTypes.INTEGER.UNSIGNED,
    //     allowNull: true,
    //     defaultValue: '',
    //     comment: '当月每日用电'
    // },
    ...date_return(),
    pay: {
        type: DataTypes.STRING(10),
        allowNull: true,
        defaultValue: '0.0',
        comment: '当月缴费情况'
    },
    remark:{
        type: DataTypes.STRING(40),
        allowNull: true,
        defaultValue: '',
        comment: '备注'
    }
}, {

    //指定连接实例，这样才知道在指定数据库创建user表
    sequelize,
    //模型名称, 当没有指定表名时，sequelize推断名称为模型名称的复数 ==> users作为表名
    modelName: 'order',
    //不推断，直接使用模型作为表名 ==> order作为表名
    freezeTableName: true,
    //指定表名
    tableName: 'order'
})

//同步数据库表
//force: true ==> 删除原有user表，新建user表
//force: false ==> 如果user存在，则不创建，反之，不创建user表
Order.sync({
    force: false
});

module.exports = Order;